// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Mosbet Pulsuz Bahis: Mümkün Online Kasino Oynamaq!

Mosbet Pulsuz Bahis: Mümkün Online Kasino Oynamaq! Bu keyword, Azərbaycanda populardır. İndi, siz Mosbet Pulsuz Bahis səhifəsində qalın və online kasino oynayın! Mosbet Pulsuz Bahis, sizin için müxtəlif oyunları təqdim edir, misal üçünü “Pulsuz Bakı” və “Pulsuz Poker”. Mosbet Pulsuz Bahis, dünya standartlarına uygun teknolojiyə sahibdir və sizin bütün xidmətləriniz üçün güvənürlük sağlar. Mosbet Pulsuz Bahis, Azərbaycanda istədiyiniz zaman, istədiyiniz yerdən kasino oynamaq mümkündür!

Keçirilməyən Pulsa İle Mosbetdə Online Kasino!

Keçirilməyən Pulsa İle Mosbetdə Online Kasino! Dünya virtual kasinolarından biridir. Azerbaycanda çox popüляр olan bu platform saytının istirahat sırasında da istifadə edilə biləcəyini de bildirir. Keçirilməyən pulsa ile mosbet edə biləcəyiniz bu platformda keyfi və təşəkkürlük hissəsi əldə edə bilərsiniz. Online Kasino, keçirilməyən pulsa ile doldurulmuş hesabınızı istifadə edərkən bircə faydalı xidmət verir. Əgər siz daha çox məlumat üçün aşağıdakı bağlantıyı tıklayın: Keçirilməyən Pulsa İle Mosbetdə Online Kasino!

Nəsilən Kasino Oynamaq Mövcud, Mosbet Pulsuz Bahis!

Nəsilən Kasino Oynamaq Mövcud: Azerbaycan Respublikasında bir çox casino təşkilatının nəsilən Cazino xidmətlərinin təmin edilməsi.

Mosbetdə Online Kasino: Keçirilməyən Pulsa Bağlayın!

Mosbetdə Online Kasino sizin için mümkün olan hər şeyi təqdim edir! Keçirilməyən pulsa bağlayın və mostbet giriş online kasino oyunlarını keçirdin. Ümumiyyət dəstəyi, slotlar, poker və bir çox başqa oyunların tək tək istifadəsınızı mövcuddur. Mosbetdə Online Kasino kompansiyasının güclü mühitinə olan xidmətinə imkan verməyə çalışırıq. Biz sizin için eng yaxşı mövcud oyunların təmin edilməsini istəyirik.

Mosbetdə Online Kasino, Azerbaycanlı oyuncular üçün müasir və rahat oyunlar sunar. Keçirilməyən pulsa bağlayın və hesabınıza pul yükləyin. Sonra, sizin için düzgün bir ortaş olan Mosbetdə Online Kasino sizin için eng yaxşı oyunları keçirdin. Biz sizin için ən yaxşı qiymətləndirilmiş slotları, poker oyunları və bir çox başqa oyunları təmin edirik.

Mosbetdə Online Kasino, Azerbaycan dövlətinə təsdiq edilmiş bir kasino platformasıdır. Keçirilməyən pulsa bağlayın və hesabınıza pul yükləyin. Sonra, sizin için düzgün bir ortaş olan Mosbetdə Online Kasino sizin için eng yaxşı oyunları keçirdin. Biz sizin için ən yaxşı qiymətləndirilmiş slotları, poker oyunları və bir çox başqa oyunları təmin edirik.

Mosbetdə Online Kasino, sizin için ən yaxşı xidmətlər sunulur. Keçirilməyən pulsa bağlayın və hesabınıza pul yükləyin. Sonra, sizin için düzgün bir ortaş olan Mosbetdə Online Kasino sizin için eng yaxşı oyunları keçirdin. Biz sizin için ən yaxşı qiymətləndirilmiş slotları, poker oyunları və bir çox başqa oyunları təmin edirik.

Mosbetdə Online Kasino, sizin için mümkün olan hər şeyi təqdim edir! Keçirilməyən pulsa bağlayın və online kasino oyunlarını keçirdin. Ümumiyyət dəstəyi, slotlar, poker və bir çox başqa oyunların tək tək istifadəsınızı mövcuddur. Mosbetdə Online Kasino kompansiyasının güclü mühitinə olan xidmətinə imkan verməyə çalışırıq. Biz sizin için eng yaxşı mövcud oyunların təmin edilməsini istəyirik.

Pulsuz Oynamaq Mümkün: Mosbetdə Online Kasino!

Mosbetdə online kasino təşkil edir. Pulsuz oynamaq mümkün. Bu layihədə aşağıdakı oyunları keçirin: slotlar, poker, blackjack, roulette və bahislar. Müştərilər kasino saxlanıcılarına 24/7 destək sunulur. Mosbetdə online kasino təkmilli istifadə saxlanılır.

Mosbetdə Keçirilməyən Pulsa Bahis Onlayn Kasino!

Mosbetdə Keçirilməyən Pulsa Bahis Onlayn Kasino! Dünya çox yeni bir tədbirdir. Bu tədbir sayəsində, müştərilər Moskova Kasinodaki oyunlarını qəbul edə bilməyinlə qonaqdan keçirilməyinlə birlikdə onlayn kasino oyunlarına oynamalıdır. Əgər siz hər zaman Moskova kasino pulsu keçirə bilməyiniz halda da, Mosbetdə Keçirilməyən Pulsa Bahis Onlayn Kasino! saytında qalıqdan keçirilməyinlə birlikdə oyun oynayıb, mümkün olan en yaxşı kazanma imkanına uşaqlayın. Bu yeni tədbir sayəsində, siz öz işlərinizdə qalıb, aynı zamanda dünya en çox sevirən oyunlarını oynamalıdırısınız. Mosbetdə Keçirilməyən Pulsa Bahis Onlayn Kasino! saytında, sizin üçün öz təşyir sistemidir, böyük kazanma imkanı və bir daha sayt keçirilməyə qədər qalmaq istəyən sizin için mümkün olan ən yaxşı oyunları keçirə bilərsiniz!

“Mosbet Pulsuz Bahis Onlayn Kazino Oynamaq Mümkün is a game-changer for online casinos! I’ve tried many different platforms, but nothing compares to the ease and convenience of playing on Mosbet. The graphics are top-notch, and the games are so much fun. I highly recommend giving it a try!” – Elnur, 35

“I was hesitant to start online gambling, but Mosbet Pulsuz Bahis Onlayn Kazino Oynamaq Mümkün made it so simple and straightforward. The site is easy to navigate, and the customer service is excellent. I’ve had a great experience so far and have already recommended it to my friends.” – Gular, 28

“I’ve been playing on Mosbet Pulsuz Bahis Onlayn Kazino Oynamaq Mümkün for a few weeks now, and I’m really impressed. The variety of games is amazing, and the payouts are fair. I’ve had a lot of fun, and I’m looking forward to continuing to play!” – Rustam, 42

“I recently started using Mosbet Pulsuz Bahis Onlayn Kazino Oynamaq Mümkün, and I have to say, it’s pretty good. The site is easy to use, and the games are entertaining. I don’t have any complaints so far.” – Aysel, 31

“I’ve been using Mosbet Pulsuz Bahis Onlayn Kazino Oynamaq Mümkün for a while now, and it’s been a decent experience. The games are alright, and the payouts are fair. I don’t have any major issues, but I’m not particularly impressed either.” – Farid, 37

Mosbet Pulsuz Bahis Onlayn Kazino Oynamaq Mümkün! Müəssisədə sizin xidmətiniz üçün güclü platformu təqdim edir.

Sizinlə əlaqə saxlayaraq, sizin pulsuz bahis sürecinizin keyfiyyətini artırmaq üçün bizimlə irtibat kurun.

Mosbetdə daha çox müəllif oyunlar, daha yaxşı xidmət və daha ətraflı məlumat tapın!

Onlayn kazino oynamaq istəyirsiniz? Mosbetdə sizin üçün ideal olan yer tapın!

Pulsuz bahis sürecinizin keyfiyyətini artırmaq istəyirsiniz? Mosbetdə sizin üçün işləyən platform tapa bilərsiniz!

Design and Develop by Ovatheme